home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Games / lptalk-1.3 / lptalk.doc < prev    next >
Text File  |  1995-05-03  |  20KB  |  493 lines

  1.                 LP-Talk, V1.3
  2.       Modified for LP-Mud from Anton Rang's TinyTalk V1.1.2
  3.                Shawn I. McMurdo
  4.                ================
  5.  
  6. What is LP-Talk?
  7. ----------------
  8.   LP-Talk uses the same command set as TinyTalk but it interfaces to LP-Mud.
  9. The only difference to the user is that 'tells' can be highlighted instead
  10. of 'pages' since pages don't exist in LP-Mud.  Now correctly handles partial
  11. output lines and turns off echoing when entering passwords.  I am completely
  12. responsible for all modifications from TinyTalk and can be reached by email
  13. at: shawnm@sco.com.
  14.  
  15.   LP-Talk is an interface to the LP-Mud system.  It replaces telnet,
  16. and adds many new features.  Its features include:
  17.  
  18.   * LP-Talk can wrap words at the end of a line.
  19.  
  20.   * LP-Talk can automatically log into your characters.
  21.  
  22.   * LP-Talk can record a LP-Mud session to a file.
  23.  
  24.   * LP-Talk keeps your typing and LP-Mud output from being
  25.     intermingled.
  26.  
  27.   * LP-Talk allows input lines to be up to 512 characters long.
  28.     This allows long descriptions to be entered.
  29.  
  30.   * LP-Talk supports simple macros.
  31.  
  32.   * LP-Talk supports "portals", special exits which connect between
  33.     the various LP-Mud systems.  There are also commands which allow
  34.     manually switching systems.
  35.  
  36.   * LP-Talk can hilite tells and whispers, on terminals which support
  37.     boldface or inverse characters.
  38.  
  39. Who wrote TinyTalk?  LP-Talk?  What is its status?
  40. --------------------------------------------------
  41.  
  42.   TinyTalk was written entirely by Anton Rang.  He can be reached via
  43. E-mail, at "rang@cs.wisc.edu".  TinyTalk is semi-supported; bugs will
  44. be fixed, and new features may be incorporated into future versions.
  45.   LP-Talk was modified from TinyTalk by me (Shawn McMurdo).  I can
  46. be reached at 'shawnm@sco.com'.  LP-Talk is semi-supported; bugs will
  47. be fixed, and new features may be incorporated into future versions.
  48. Mail any comments or questions to me.
  49.  
  50.   Stewart Clamen (aka "Stewy") came up with the idea for portals, and
  51. added support for them into the GNU Emacs-based client (tinymud.el).
  52. The first free-standing program that I know of which implemented them
  53. was written by Russ Smith (aka "Nightfall").  They may be reached at
  54. the addresses "clamen@cs.cmu.edu" and "russ@uokmax.ecn.uoknor.edu".
  55.  
  56.   Support for HP-UX was contributed by Andy Norman; support for System
  57. V was contributed by Kipp Hickman.  If you have problems with these,
  58. let me know.
  59.  
  60.   Thanks also go to many beta testers, too numerous to name here.
  61. They've been most helpful in finding bugs and suggesting new and
  62. useful features.  Thanks to all who have suggested new features as
  63. well.
  64.  
  65.   LP-Talk is in the public domain.  Feel free to make improvements,
  66. or take parts of the code for your own programs.  I ask only two
  67. things (these aren't legal obligations, just requests):
  68.  
  69.     * If you make changes to LP-Talk, change the version number.
  70.       Don't increment it (i.e. to 1.4 or 2.0); add something to the
  71.       end of the current version number.  For instance, you could
  72.       use your initials: LP-Talk 1.3/abr-1.  This way, no two
  73.       versions of LP-Talk are likely to have the same version number.
  74.  
  75.     * The original version of TinyTalk may be FTPed from
  76.       derby.cs.wisc.edu (128.105.2.162).
  77.  
  78.     * If you distribute modified versions of LP-Talk, please leave a
  79.       pointer to ftp.math.okstate.edu (139.78.10.6) where the original
  80.       code may be FTPed from and leave a pointer to my email address,
  81.       'shawnm@sco.com', since i am not the owner of ftp.math.okstate.edu.
  82.  
  83.   If you have a minor improvement in mind, it may be best just to send
  84. me a mail message.  I can incorporate it into the next version.
  85.  
  86. Installing LP-Talk.
  87. --------------------
  88.  
  89.   This is described in the separate README file which you should have
  90. received with this file.
  91.  
  92. Starting LP-Talk.
  93. ------------------
  94.  
  95.   Before using LP-Talk for the first time, you may want to create a
  96. configuration file (described below).  LP-Talk will run without one,
  97. but automatic logins and world recognition will not be available.  If
  98. you do not have a configuration file, a host name and port number must
  99. be specified, as with 'telnet'.  Configuration files are described in
  100. a later section.
  101.  
  102.   The simplest way to invoke LP-Talk is simply by typing its name,
  103. without any arguments.  If a configuration file exists, this will read
  104. it and connect to the first world in the file.  To connect to that
  105. world without logging in, the single argument '-' should be given.
  106.  
  107.     lptalk        Connects to the default world and attempts login.
  108.     lptalk -    Connects to the default world without logging in.
  109.  
  110.   To connect to an alternate world which is in the configuration file,
  111. the name of that world may be given as an argument.  A leading '-'
  112. indicates that auto-login should be disabled.
  113.  
  114.     lptalk lpworld    Connects to the world lpworld.
  115.     lptalk -lpworld    Connnects to lpworld without logging in.
  116.  
  117.   To use LP-Talk without a configuration file, or to connect to a
  118. world which is not in the configuration file, the host name (or
  119. Internet address) and port number must be given, as with 'telnet'.  If
  120. a default character exists in the configuration file, auto-login will
  121. be attempted; a leading '-' on the host suppresses this.
  122.  
  123.     lptalk 192.35.96.111 6250        Connects to TinyHELL.
  124.     lptalk -uokmax.ecn.uoknor.edu 6250    Connects to TinyHELL, no login.
  125.  
  126. Using LP-Talk.
  127. ---------------
  128.  
  129.   LP-Talk works almost the same as a regular telnet interface would.
  130. Output from LP-Mud is displayed on the screen.  To send a line to
  131. LP-Mud, just type the line and press return.  The most noticeable
  132. difference is that the line you are typing will usually not be mixed
  133. in with the output.  (The exception is when an input line wraps
  134. around, in which case any entire lines typed so far will remain on the
  135. screen, above output from LP-Mud.)
  136.  
  137.   Commands may be given to LP-Talk by entering a line which begins
  138. with a slash (/).  To send a line which begins with a slash to
  139. LP-Mud, you must start the line with two slashes.  (For instance,
  140. typing '//house' would send the line '/house' to LP-Mud.  Typing only
  141. '/house' would cause LP-Talk to look for a 'house' command.)
  142.  
  143.   When you walk through a portal to another LP-Mud, LP-Talk will try
  144. to automatically reconnect you to the new system.  If the world is
  145. defined in your configuration file (and auto-login has not been
  146. disabled), it will automatically connect you to your character there.
  147.  
  148.   The backspace and delete keys function as usual; in addition,
  149. control-U or control-X will erase the entire input line.  Control-R
  150. will refresh the current input (which may span multiple lines).
  151. Control-W will erase the last word typed.  (Note: all of these
  152. characters may be changed, using /stty mode.)
  153.  
  154.   Control-C (or the interrupt character) will exit LP-Talk (unless
  155. the /nointr command is used); it's recommended that the standard
  156. LP-Mud command QUIT be used instead, though.  On systems which
  157. support job control, control-Z (or whichever character has been set as
  158. the suspend character) will pause LP-Talk and return you to the
  159. shell.  When you resume LP-Talk after it has been suspended, any
  160. output from the server which has been received will be printed.
  161.  
  162. Commands.
  163. ---------
  164.  
  165.   There are four classes of LP-Talk commands: general, logging,
  166. macro, and output control commands.  The general commands are:
  167.  
  168.   /quit            Exits from LP-Talk.
  169.  
  170.   /help            Prints a short summary of LP-Talk commands.
  171.   /help2        Prints another short summary.
  172.  
  173.   /wrap [column]    Turns on word wrap mode, optionally setting the
  174.             right margin.  Word wrap mode is enabled by
  175.             default, at the terminal's normal right margin
  176.             (or column 80 if this is not known).
  177.  
  178.   /nowrap        Turns off word wrap mode.  The current column is
  179.             remembered, and a later /wrap command without an
  180.             argument will default to that column.
  181.  
  182.   /login        Enables automatic logins.  These are enabled by
  183.             default.
  184.  
  185.   /nologin        Disables automatic logins.  If you dislike the
  186.             automatic login feature, you can place this
  187.             command in your configuration file.  Another use
  188.             for it is when going through a portal to a world
  189.             in which you don't have a character (or wish to
  190.             connect to a character which isn't your default).
  191.  
  192.   /quiet        Turns on "quiet" mode.  In quiet mode, automatic
  193.             logins don't print the prompts from the server
  194.             (for instance, "Welcome To LP-Mud"..."Use WHO").
  195.             If you like this option, you probably want to put
  196.             this command in your configuration file.  This has
  197.             no effect if automatic logins are disabled.
  198.  
  199.   /noquiet        Turns off quiet mode.  Automatic logins will show
  200.             the entire server message.
  201.  
  202.   /intr            Enables interrupt mode; ^C will exit LP-Talk.
  203.             This is enabled by default.
  204.  
  205.   /nointr        Disables interrupt mode; ^C will be ignored.
  206.  
  207.   /stty            Causes LP-Talk to use the current terminal
  208.             configuration for line editing characters.
  209.  
  210.   /nostty        Causes LP-Talk to use its default line editing
  211.             characters.  This is the default.
  212.  
  213.   /recall        Recalls the last (non-empty) line typed.  This is a
  214.             very limited form of command recall, useful mainly
  215.             when working with an unreliable connection.
  216.  
  217.   /listworlds        Lists the worlds defined in your configuration file.
  218.  
  219.   /world [name]        Switches the connection to an alternate world.  If
  220.             no world is given, connects to the default world.
  221.             (Note that this breaks the connection with the old
  222.             world; LP-Talk only maintains one connection at a
  223.             time.)
  224.  
  225. Logging commands control whether a LP-Talk session is saved into a
  226. file.  If you are using a terminal emulation program which does
  227. logging, you may not need these commands.
  228.  
  229.   /log [filename]   Enables logging.  All output from the server will
  230.             be logged into the specified file.  If no file has
  231.             been specified, "~/lptalk.log" will be used.  (Once a
  232.             filename has been set, future /log commands during
  233.             the same session will remember that filename.)
  234.  
  235.   /nolog        Disables logging.  The file is closed, and no
  236.             output will be sent to it.  This is the default.
  237.  
  238.   /logme        Enables input logging.  Everything typed at the
  239.             keyboard (including commands and LP-Mud input)
  240.             will be logged, if logging is enabled.
  241.  
  242.   /nologme        Disables input logging.  Only output from the
  243.             server will be logged.  This is the default.
  244.  
  245. Macro commands allow macros to be defined.  Macros are discussed in
  246. more detail in the next section.
  247.  
  248.   /def name = body  Defines the macro 'name'.  'Name' must not be a
  249.             current macro.  Names are not case-sensitive, and
  250.             any names which are the same as a LP-Talk command
  251.             name will not be usable.
  252.  
  253.   /undef name        Undefines the macro 'name', allowing it to be
  254.             redefined.
  255.  
  256.   /listdef [full]   Lists the current macro definitions.  By default,
  257.             this only lists their names.  If the keyword
  258.             'full' is given, both names and bodies will be
  259.             listed.
  260.  
  261.   /savedef [file]   Saves all current macro definitions into a file.
  262.             If no filename is given, "lptalk.macros" will be
  263.             used.  Warning: this will overwrite any existing
  264.             file by the name; use it with caution.
  265.  
  266.   /loaddef [file]   Loads macro definitions from a file.  The file
  267.             may have been created with /savedef, or may be
  268.             simply a list of /def commands (possibly with
  269.             comments, lines starting a semicolon, interspersed).
  270.  
  271. Output control commands.
  272. ------------------------
  273.  
  274.   These commands control special processing of messages from LP-Mud.
  275.  
  276.   /beep [count]        When /beep is enabled, tells ("Fuber tells you")
  277.             are signaled with one more beeps.  The default is 3.
  278.  
  279.   /nobeep        This disables /beep; tells are not signaled.
  280.  
  281.   /hilite [mode]    This enables hiliting of some output message.  Mode
  282.             may be 'tell', to hilite tells; 'whisper', to hilite
  283.             whispers to you; or the name of a person, in which
  284.             case all their actions will be hilited.  If no mode
  285.             is specified, person-hiliting is enabled (though
  286.             only previously added people will be hilited).
  287.  
  288.   /nohilite [mode]  This reverses /hilite.  It can be used to disable
  289.             hiliting of tells or whispers, or to remove a person
  290.             from the list of hilited people.  If no mode is
  291.             specified, person-hiliting is disabled; however,
  292.             the list of hilited people remains intact.
  293.  
  294.   /listhilite        Lists persons being hilited, and indicates whether
  295.             tell and whisper hiliting is enabled.
  296.  
  297.   /loadhilite [f]   Retrieves a list of characters to hilite from a file.
  298.             The default name is '~/lptalk.hilite'.
  299.  
  300.   /savehilite [f]   Saves a list of characters to hilite in a file.  The
  301.             default name is '~/lptalk.hilite'.
  302.  
  303.   /gag [person]        This command suppresses output from a character.
  304.             It may be useful for ignoring robots, for example.
  305.             Arrival, departure, and kill messages are never
  306.             suppressed.  With no arguments, gagging is enabled.
  307.  
  308.   /nogag [person]   This command removes a character from the "gag list".
  309.             With no arguments, gagging is disabled, but the list
  310.             of gagged characters is retained.
  311.  
  312.   /loadgag [f]      Retrieves a list of characters to "gag" from a file.
  313.             The default name is '~/lptalk.gag'.
  314.  
  315.   /savegag [f]      Saves a list of characters to "gag" in a file.  The
  316.             default name is '~/lptalk.gag'.
  317.  
  318.   /whisper        Lets whispers be shown, on systems which support
  319.             "noisy whisper".
  320.  
  321.   /nowhisper        Prevents whispers to others from being shown, in
  322.             effect simulating "quiet whisper".  This is not
  323.             infallible, and may prevent some messages which
  324.             are not actually true whispers from being shown,
  325.             if they appear to be whispers.
  326.  
  327. Macros.
  328. -------
  329.  
  330.   LP-Talk macros, while simple, are powerful.  Macros can range in
  331. complexity from simply moving between rooms to creating a private note
  332. to someone.
  333.  
  334.   The simplest type of macro has no arguments.  It is defined with the
  335. /def command.  This macro can be invoked simply by using its name as a
  336. command.  For instance, entering the line
  337.  
  338.     /def pizza = "I like pizza!
  339.  
  340. will define a macro named 'pizza', which will send the string ' "I like
  341. pizza! ' to LP-Mud when it is invoked.  Typing
  342.  
  343.     /pizza
  344.  
  345. will cause your character to say "I like pizza!", just as though you
  346. had typed ' "I like pizza! ' yourself.
  347.  
  348.   The special sequences %\ and %; will cause an end-of-line to be
  349. inserted within the macro, just as though you had typed a return.  If
  350. you changed your mind and wanted your character to say "I like pizza!"
  351. and then smile, you could remove the current pizza macro and define a
  352. new one:
  353.  
  354.     /undef pizza
  355.     /def pizza = "I like pizza!%;:smiles.
  356.  
  357.   Now, typing the command '/pizza' will result in LP-Mud receiving
  358. the following two commands.
  359.  
  360.     "I like pizza!
  361.     :smiles.
  362.  
  363.   If you want to use the percent sign (%) in a macro and have it sent
  364. to LP-Mud (for instance, "I like pizza 100% better than spinach"),
  365. you must use two percent signs.  Only one will be sent through.
  366.  
  367.     /def better = "I like pizza 100%% better than spinach.
  368.  
  369.   Macros may take "arguments"; that is, they may do different things
  370. depending on exactly what command is used to start them.  For
  371. instance, you may like pizza better than lots of foods, but not want
  372. to define a macro for every food.  You could use the following macro.
  373.  
  374.     /def better = "I like pizza 100%% better than %1.
  375.  
  376.   The special sequence '%1' will cause the first word after '/better'
  377. to be inserted there.  For instance, typing:
  378.  
  379.     /better artichokes
  380.  
  381. will cause LP-Mud to receive
  382.  
  383.     "I like pizza 100% better than artichokes.
  384.  
  385.   Up to four arguments can be used; they are numbered one through
  386. four.  A special case is %*, which causes the entire command line
  387. following the name of the macro to be inserted.  For instance, if you
  388. wanted to always start your character's description with the same
  389. string, you could define a macro:
  390.  
  391.     /def pickle = describe looks like a pickle. %*
  392.  
  393. If you then typed
  394.  
  395.     /pickle You decide that it's probably dill.
  396.  
  397. LP-Mud would receive
  398.  
  399.     describe looks like a pickle. You decide that it's probably dill.
  400.  
  401.   Arguments cannot have spaces in them, except for the special case of
  402. %*.  This restriction may be changed in a later version of LP-Talk.
  403.  
  404. The configuration file.
  405. -----------------------
  406.  
  407.   The configuration file is used to define worlds, and to set LP-Talk
  408. options when it starts (for instance, to define some initial macros).
  409. If the environment variable LPTALK is defined, LP-Talk will look at
  410. the file named there for its configuration; otherwise, it reads a
  411. default configuration file named '.lptalk' in the user's home
  412. directory (~/.lptalk).
  413.  
  414.   WARNING: You should make sure that your ~/.lptalk file is
  415. protected against access by other users, by using the chmod command.
  416. If you don't do this, other users can find out your character names
  417. and passwords.
  418.  
  419.   A configuration file has two sections.  The first defines the worlds
  420. (and characters) which LP-Talk knows about.  The second section
  421. consists of LP-Talk commands, which will be executed when LP-Talk
  422. starts up.  The sections are separated by a blank line.
  423.  
  424.   The first line of the world definition section is used as a default
  425. world (if LP-Talk is invoked with no arguments).  This should be the
  426. world you enter the most, usually.
  427.  
  428.   Each line of the world definition section contains five sections
  429. (except for the default--see below).  This defines a world, a
  430. character, and an address for the world.  An example would be:
  431.  
  432.     LP-Mud MyCharacter MyPassword daisy.learning.cs.cs.cmu 4201
  433.  
  434.   This line (which, if used in a configuration file, should not have
  435. any leading spaces) would define the world LP-Mud.  It would use the
  436. password MyPassword to automatically log into MyCharacter.  It would
  437. use the hostname daisy.learning.cs.cmu.edu, and port 4201.
  438.  
  439.   A line with the world name "default" (and no host address or port)
  440. is special.  It defines a character and password to be used for all
  441. worlds which are not otherwise defined in the configuration file.  If
  442. you define all the worlds you normally visit in the configuration
  443. file, this is not very useful; however, it may allow new worlds to be
  444. accessed through portals more easily.
  445.  
  446.   After the world definition section, any LP-Talk commands may be
  447. entered.  These may include setting quiet modes, a wrap column, or
  448. defining macros.
  449.  
  450.   An example configuration file, with comments, follows.  It really
  451. isn't as complicated as the above makes it sound!
  452.  
  453. --------------------
  454.  
  455. ;
  456. ; This is an example LP-Talk configuration file.  It can be copied to
  457. ; ~/.lptalk and modified to suit your needs and wishes.
  458. ;
  459. TinyMUD YourName YourPass daisy.learning.cs.cmu.edu 4201
  460. TinyHELL YourName YourPass 192.35.96.111 6250
  461.  
  462. ;
  463. ; The preceding blank line terminates the list of worlds.
  464. ; Any legal commands can go in this section.
  465. ;
  466. /quiet
  467. /log
  468. /hilite tell
  469. /hilite whisper
  470. ;
  471. ; Here are a few example macros.  (These lines are long, because
  472. ; macros must be defined on a single line.)
  473. ;
  474. ; Macros to move around are useful.  This one is specific to my configuration;
  475. ; it moves from the endoplasmatorium to the pub.
  476. ;
  477. /def pub = s%\e%\e%\n%\e%\
  478. ;
  479. ; Sober up quick macro.
  480. /def coffee = buy coffee%;buy coffee%;buy coffee%;buy coffee%;smile%;
  481. ;
  482. ; Note that the following 2 TinyMud macros would be useless in LP-Mud but
  483. ;are shown just as an example of the power of macros.
  484. ;
  485. ; Create a note and lock it to somebody.  Invoked as /makenote (whoever).
  486. ;
  487. /def makenote = @create Note for %1%\@lock Note for %1 = *%1%\@osucc Note for %1 = reads the note%\@fail Note for %1 = You can't read the note.%\@ofail Note for %1 = tries to read a note, but can't.%\@desc Note for %1 = A private note for %1.
  488. ;
  489. ; Take an existing note and lock it to somebody. Invoked as /usenote (whoever).
  490. ; Assumes you are carrying an object named "Note for (whoever)".
  491. ;
  492. /def usenote = @lock Note for %1 = *%1%\@osucc Note for %1 = reads the note%\@fail Note for %1 = You can't read the note.%\@ofail Note for %1 = tries to read a note, but can't.%\@desc Note for %1 = A private note for %1.
  493.